[Home] Python으로 돌아가기

클래스 - class, 객체, 상속, 메서드, 생성자, self, 멤버변수, 다중 생성, 정적함수

[참조]

 

간단한 프로그램은 함수만으로 효율적인 절차지향(procedure-oriented) 프로그래밍을 작성할 수 있다.
하지만 프로그램이 커지면 객체의 틀(뼈대)인 클래스(class)를 사용한 객체지향(object-oriented) 프로그래밍이 필요하다.

목차

(1) 클래스와 객체
(2) 클래스의 정의: class
(3) 클래스의 상속(inheritance)
(4) 정적함수를 이용한 다중 생성

 

(1) 클래스와 객체

 

B 클래스.png
과자틀(클래스)와 과자(객체, 인스턴스)
B 클래스2.png
붕어빵 틀(클래스)와 붕어빵(객체, 인스턴스)
(출처: 김종훈, 김동건, 파이썬 마스터, 한빛아카데미, 2025)
B 클래스3.png
별 틀(클래스)로 찍어낸 별들(객체, 인스턴스)

객체와 인스턴스의 비교

 

(2) 클래스의 정의: class

방법 1)

 

방법 2)

  • 메서드(method, 매소드) 
    클래스 내에서 정의되는 함수(function)이다.
    기본함수가 아닌 사용자 정의 함수이다.
  • 생성자(constructor) 메서드(함수): __init__
     객체가 생성될 때 자동으로 호출되며, 인스턴스(객체) 변수의 초기화를 수행한다. def __init__(파라미터): 를 통해 작성한다.
  • 용어 - 생성자와 소멸자
  • self
    클래스에서 self는 현재 인스턴스를 나타내는 첫 번째 매개변수로써, 관례적으로 사용되는 이름이다. 
     즉, 파이썬에서 클래스를 정의할 때 메서드의 첫 번째 매개변수는 반드시 self이어야 한다.
    이는 해당 클래스의 인스턴스를 전달받아 해당 인스턴스의 속성이나 메서드에 접근할 수 있도록 하기 위함이다.
  • 속성(property) 
    멤버변수와 함수는 public 속성을 지닌다.
    만약 private 속성으로 할 때는 두개의 밑줄 __로 시작한다.
  • 멤버변수, 클래스변수, 객체변수의 비교
  •  

     

    (3) 클래스의 상속(inheritance)

     

    (4) 정적함수를 이용한 다중 생성

    @staticmethod 의 의미